package com.example.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.pojo.Emp;
import com.example.vo.per.EmpTurnover;
import com.example.vo.respvo.EmpBasicInfoVo;
import com.example.vo.respvo.EmpVo;
import com.example.vo.respvo.Option;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 员工表 Mapper 接口
 * </p>
 *
 * @author wsl
 * @since 2022-04-11
 */
@Mapper
@Repository("empMapper2")
public interface EmpMapper extends BaseMapper<Emp> {

    /**
     * 员工分页数据
     * @return
     * @param empName
     * @param workId
     * @param positionId
     * @param deptId
     * @param companyName
     */
    List<Emp> selectPageInfo(
            @Param("empName") String empName,
            @Param("workId") String workId,
            @Param("positionId") Integer positionId,
            @Param("deptId") Integer deptId,
            @Param("companyName") String companyName);

    List<Emp> selectEmpsByDeptId(@Param("deptId") Integer deptId);


    List<Option> selectEmpOptions();
    /**
     * 根据部门查员工信息
     */
    List<Emp> getDeptEmp(String deptName);

    /**
     * 查询登录用户的基本信息
     * @param userId
     * @param statusCode
     * @return
     */
    EmpBasicInfoVo selectLoginUserInfo(
            @Param("empId") String userId,
            @Param("code") String statusCode
    );

    /**
     * 多表 离职
     */
    List<EmpTurnover> selectA();

    /**
     * 多表 转岗
     */
    List<EmpTurnover> selectB();


    /**
     *
     * @param deptId 部门编号
     * @return 根据部门查询未排班的人员
     */
    List<EmpVo> selectByWorkScedule(@Param("did") Integer deptId);

    /**
     *
     * @param eid 员工编号
     * @return 查询员工在职证明信息
     */
    @MapKey("eid")
    List<Map<String,Object>> selEmpDept(Integer eid);
}
